src1=myfile_w.c
des1=myfile_w.exe
src2=bitmapParameter.c
des2=bitmapParameter.exe
src3=returnvalofOpen.c
des3=returnvalofOpen.exe 
src4=cFile.c
des4=cFile.exe 
src5=myfile_r.c
des5=myfile_r.exe
src6=fileRedirect.c
des6=fileRedirect.exe 
src7=dup2.c
des7=dup2.exe 
src8=test_stderr.c
des8=ctest_stderr.exe 
src9=test_stderr.cc 
des9=cctest_stderr.exe 

all:$(des1) $(des2) $(des3) $(des4) $(des5) $(des6) $(des7) $(des8) $(des9)

$(des1):$(src1) 
	@gcc $^ -o $@ -std=c99
	@echo "compile $^ to $@."
$(des2):$(src2) 
	@gcc $^ -o $@ -std=c99
	@echo "compile $^ to $@."
$(des3):$(src3) 
	@gcc $^ -o $@ -std=c99
	@echo "compile $^ to $@."
$(des4):$(src4) 
	@gcc $^ -o $@ -std=c99
	@echo "compile $^ to $@."
$(des5):$(src5) 
	@gcc $^ -o $@ -std=c99
	@echo "compile $^ to $@."
$(des6):$(src6) 
	@gcc $^ -o $@ -std=c99
	@echo "compile $^ to $@."
$(des7):$(src7) 
	@gcc $^ -o $@ -std=c99
	@echo "compile $^ to $@."
$(des8):$(src8) 
	@gcc $^ -o $@ -std=c99
	@echo "compile $^ to $@."
$(des9):$(src9) 
	@g++ $^ -o $@ -std=c++11
	@echo "compile $^ to $@."
.PHONY:cleanall clean1 clean2 clean4 clean5 clean6 clean7 clean8 clean9
cleanall:clean1 clean2 clean3 clean4 clean5 clean6 clean7 clean8 clean9 
clean1:
	rm -f $(des1)
clean2:
	rm -f $(des2)
clean3:
	rm -f $(des3)
clean4:
	rm -f $(des4)
clean5:
	rm -f $(des5)
clean6:
	rm -f $(des6)
clean7:
	rm -f $(des7)
clean8:
	rm -f $(des8)
clean9:
	rm -f $(des9)
